﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Fachada;
using vudu.Logica.Clases;
using vudu.Presentacion.Contrato.VU_05_Gestionar_Practicas_por_Materia;
using vudu.Presentacion.Presentador.VU_05_Gestionar_Practicas_por_Materia;
using System.Data;

namespace vudu.Presentacion.Vista.VU_05_Gestionar_Practicas_por_Materia
{
    public partial class EliminarSeccionPractica : System.Web.UI.Page, IContratoEliminarSeccionPractica
    {

        #region Atributos de pagina

            private PresentadorEliminarSeccionPractica _presentador;

        #endregion

        #region Procedimientos de carga de pagina

            protected void Page_Init(object sender, EventArgs e)
            {
				/* Procedimiento que inicia la carga de la pagina */
                _presentador = new PresentadorEliminarSeccionPractica(this);
                if (!IsPostBack)
                { _presentador.LoadDdlMateria(); }
            }

        #endregion

        #region Procedimientos de cargas de Data

            protected void ddlMateria_onselectedindexchanged(object sender, EventArgs e)
            {
                /* 
                 * Procedimiento que ejecuta la carga del Drop Down List de las secciones teoricas al seleccionar
                 * una materia
                 */
                labelEmpty.Text = "";
                labelStatus.Text = "";
                _presentador.UnLoadDdlGeneric(ddlSeccTeoria);
                _presentador.LoadDdlSeccTeoria();
            }

            protected void ddlSeccTeoria_onselectedindexchanged(object sender, EventArgs e)
            {
                /* Procedimiento que carga el Grid View con una vez seleccionada la seccion teorica
                 */
                labelEmpty.Text = "";
                labelStatus.Text = "";
                _presentador.UnLoadGridView();
                _presentador.LoadGridView();
            }

            protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
            {
                /* Carga el Grid View al cambiar la pagina de la paginacion
                 * */
                labelEmpty.Text = "";
                labelStatus.Text = "";
                GridView1.PageIndex = e.NewPageIndex;
                _presentador.LoadGridView();
            }

            protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
            {
                labelEmpty.Text = "";
                labelStatus.Text = "";
                /*
                 * Procedimiento que llama al eliminar pasandole el id de la seccion practica seleccionada
                 * */
                _presentador.EliminarPractica(Convert.ToInt32(gridView1.SelectedRow.Cells[4].Text));
                
            }

            protected void btnBackPractica_Click(object sender, EventArgs e)
            {
                labelEmpty.Text = "";
                labelStatus.Text = "";
                /*
                 * Redirecciona al home de escuela al clickear el boton de Atras
                 * */
                Response.Redirect("../HomePages/HomeEscuela.aspx");
            }    

        #endregion


        #region GUIElements

        /* Elementos utilizados en la interfaz */

            public Label LabelEscuela
            {
                get { return labelEscuela; }
            }

            public Label LabelStatus
            {
                get { return labelStatus; }
            }

            public Label LabelEmpty
            {
                get { return labelEmpty; }
            }

            public Label LabelOMateria
            {
                get { return labelOMateria; }
            }

            public Label LabelMateria
            {
                get { return labelMateria; }
            }

            public DropDownList DdlMateria
            {
                get { return ddlMateria; }
            }

            public Label LabelOSeccTeoria
            {
                get { return labelOSeccTeoria; }
            }

            public Label LabelSeccTeoria
            {
                get { return labelSeccTeoria; }
            }

            public DropDownList DdlSeccTeoria
            {
                get { return ddlSeccTeoria; }
            }

            public GridView GridView1
            {
                get { return gridView1; }
            }

            public HttpSessionState Sesion { get { return Session; } }

            public void Redirect(string ruta) { Response.Redirect(ruta); }

        #endregion GUIElements

    }
}